<?php

namespace app\api\controller;

use Alipay\lib\AlipayNotify;

/**
 * Description of Alipay
 *
 * @author Administrator
 */
class Alipay
{

    public function NotifyUrl($param)
    {
        //计算得出通知验证结果

        $alipay_config = config('alipay');
        $alipayNotify = new AlipayNotify($alipay_config);
        $verify_result = $alipayNotify->verifyNotify();
        if ($verify_result)
        {//验证成功
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //请在这里加上商户的业务逻辑程序代
            //——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
            //获取支付宝的通知返回参数，可参考技术文档中服务器异步通知参数列表
            //商户订单号
            $out_trade_no = input('param.out_trade_no');

            //支付宝交易号
            $trade_no = input('param.trade_no');

            //交易状态
            $trade_status = input('param.trade_status');

            //logResult('交易状态：'.$_POST['trade_status']);
            if ($trade_status == 'TRADE_SUCCESS')
            {
                // $_POST['passback_params'];  商家数据包 字符串类型   支付成功后解析字符串执行相应的业务操作
            }
//            else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
//                        //判断该笔订单是否在商户网站中已经做过处理
//                                //如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
//                                //如果有做过处理，不执行商户的业务程序
//
//                        //注意：
//                        //该种交易状态只在一种情况下出现——开通了高级即时到账，买家付款成功后。
//
//                //调试用，写文本函数记录程序运行情况是否正常
//                //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
//            }
            //——请根据您的业务逻辑来编写程序（以上代码仅作参考）——

            echo "success";  //请不要修改或删除
            exit;
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        }
        else
        {
            //logResult('失败！！！！');
            //验证失败
            echo "fail";
            exit;
            //调试用，写文本函数记录程序运行情况是否正常
            //logResult("这里写入想要调试的代码变量值，或其他运行的结果记录");
        }
    }

}
